package com.aizuda.boot.modules.business.template.mapper;

import com.aizuda.boot.modules.business.template.entity.TemplateDefaultFieldDetailEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 模板默认字段详情Mapper接口
 */
@Repository
public interface TemplateDefaultFieldDetailMapper extends BaseMapper<TemplateDefaultFieldDetailEntity> {

    /**
     * 根据模板ID删除默认字段详情
     *
     * @param templateId 模板ID
     * @return 删除记录数
     */
    int deleteByTemplateId(@Param("templateId") Integer templateId);

    /**
     * 批量插入模板默认字段详情
     *
     * @param details 字段详情列表
     * @return 插入记录数
     */
    int batchInsert(@Param("details") List<TemplateDefaultFieldDetailEntity> details);

    /**
     * 根据模板ID查询默认字段详情列表
     *
     * @param templateId 模板ID
     * @return 字段详情列表
     */
    List<TemplateDefaultFieldDetailEntity> selectByTemplateId(@Param("templateId") Integer templateId);

    /**
     * 根据模板ID和字段ID查询默认字段详情
     *
     * @param templateId 模板ID
     * @param fieldId 字段ID
     * @return 字段详情
     */
    TemplateDefaultFieldDetailEntity selectByTemplateIdAndFieldId(@Param("templateId") Integer templateId, 
                                                                   @Param("fieldId") Long fieldId);

    /**
     * 更新字段使用次数
     *
     * @param id 主键ID
     * @param usageCount 使用次数
     * @return 更新记录数
     */
    int updateUsageCount(@Param("id") Long id, @Param("usageCount") Integer usageCount);
} 